a11y: Split out function
authorBenjamin Otte <otte@redhat.com>
Mon, 12 Dec 2011 09:24:53 +0000 (10:24 +0100)
committerBenjamin Otte <otte@redhat.com>
Fri, 16 Dec 2011 03:53:13 +0000 (04:53 +0100)
I want to use that function when sending notifications. See next
commits.

gtk/a11y/gtktreeviewaccessible.c

index ccdc8723fc961916c72051a299a4408bc26511ff..f959392ecd62b1c405c846da3072cef94a0821f0 100644 (file)
@@ -2628,29 +2628,46 @@ cell_info_new (GtkTreeViewAccessible *accessible,
   g_hash_table_replace (accessible->cell_infos, cell_info, cell_info);
 }
 
+static GtkCellAccessible *
+peek_cell (GtkTreeViewAccessible *accessible,
+           GtkRBTree             *tree,
+           GtkRBNode             *node,
+           GtkTreeViewColumn     *column)
+{
+  GtkTreeViewAccessibleCellInfo lookup, *cell_info;
+
+  lookup.tree = tree;
+  lookup.node = node;
+  lookup.cell_col_ref = column;
+
+  cell_info = g_hash_table_lookup (accessible->cell_infos, &lookup);
+  if (cell_info == NULL)
+    return NULL;
+
+  return cell_info->cell;
+}
+
 static GtkCellAccessible *
 find_cell (GtkTreeViewAccessible *accessible,
            gint                   index)
 {
-  GtkTreeViewAccessibleCellInfo lookup, *cell_info;
   GtkTreeView *tree_view;
+  GtkRBTree *tree;
+  GtkRBNode *node;
 
   tree_view = GTK_TREE_VIEW (gtk_accessible_get_widget (GTK_ACCESSIBLE (accessible)));
 
   if (!_gtk_rbtree_find_index (_gtk_tree_view_get_rbtree (tree_view),
                                index / get_n_columns (tree_view) - 1,
-                               &lookup.tree,
-                               &lookup.node))
+                               &tree,
+                               &node))
     {
       g_assert_not_reached ();
     }
-  lookup.cell_col_ref = get_visible_column (tree_view, index % get_n_columns (tree_view));
 
-  cell_info = g_hash_table_lookup (accessible->cell_infos, &lookup);
-  if (cell_info == NULL)
-    return NULL;
-
-  return cell_info->cell;
+  return peek_cell (accessible,
+                    tree, node, 
+                    get_visible_column (tree_view, index % get_n_columns (tree_view)));
 }
 
 static void